草庐IT

Java for 循环性能

全部标签

c# - C# 中的循环反转加速应用程序

我们正在使用EmguCV开发视频处理应用程序,最近不得不进行一些像素级操作。我最初编写的循环遍历图像中的所有像素,如下所示:for(intj=0;j执行循环的时间非常糟糕。然后我在EmguCV论坛上发帖,得到了这样切换循环的建议:for(intj=Img.Width;j-->0;){for(inti=Img.Height;i-->0;){//Pixeloperationcode}}我很惊讶地发现代码执行了一半的时间!我唯一能想到的是每次访问属性时在循环中进行的比较,它不再需要这样做。这是加速的原因吗?还是有别的东西?我很高兴看到这种改进。如果有人能澄清原因,我会很高兴。

c# - 哪个运行时性能更快 : WPF or Winforms?

我知道WPF更复杂、更灵活,因此可以考虑进行更多计算。但是由于渲染是在GPU上完成的,对于相同的应用程序(功能和视觉),它不会比Winforms更快吗?我的意思是,当您不运行任何游戏或进行繁重的3D渲染时,GPU不会执行繁重的工作,对吧?而CPU总是很忙。这是一个有效的假设还是WPF的GPU利用率是其管道中非常小的操作?编辑:我感兴趣的应用程序是一个3d建模和动画软件,您可以在其中使用3d视口(viewport)导航和编辑场景以及场景中的对象。但我想使用WPF,因为它的现代架构,而且是从头开始。EDIT2:同样出于我的目的,由于软件的高端要求,我将对应用程序本身使用DirectX。至于

spring如何开启允许循环依赖

如何解决spring循环依赖在Spring框架中,allowCircularReferences属性是用于控制Bean之间的循环依赖的。循环依赖是指两个或多个Bean之间相互依赖的情况,其中一个Bean依赖于另一个Bean,同时另一个Bean又依赖于第一个Bean。allowCircularReferences属性默认是关闭的,即不允许循环依赖存在。如果两个或多个Bean之间存在循环依赖,Spring会抛出BeanCurrentlyInCreationException异常,以避免可能出现的死循环和性能问题。默认情况下,Spring不允许循环依赖,如果存在循环依赖,会抛出BeanCurrent

c# - 异步/等待高性能服务器应用程序?

C#5中新的async/await关键字看起来很有前途,但我读过一篇关于对这些应用程序的性能影响的文章,因为编译器将为异步方法生成一个非常复杂的状态机。使用这些关键字进行异步编程要容易得多,但它是否与SocketAsyncEventArgsforSockets一样好?第二个问题:像Stream.WriteAsync这样的异步IO方法真的是异步的(.Net上的完成端口或Mono上的epoll/poll)还是这些方法是将写调用推送到线程池的廉价包装器?第三个问题:除了UI应用程序的SynchronizationContext之外,有没有办法实现某种单线程上下文?类似于事件循环的东西,以便完

c# - 如何停止 .Net Core Web API 中的自引用循环?

我遇到了一些问题,我猜这些问题与使用.NETCoreWebAPI和EntityFrameworkCore的自引用有关。当我为某些导航属性添加.Includes时,我的WebAPI开始阻塞。我在较旧的WebAPI中找到了一个解决方案,但我不知道如何为.NETCoreWebAPI实现相同的解决方案(我仍处于早期学习阶段)。旧的解决方案是将其粘贴在Global.asax的Application_Start()中:GlobalConfiguration.Configuration.Formatters.JsonFormatter.SerializerSettings.ReferenceLoop

c# - 为什么这个通过 Regex 组循环打印输出两次?

我写了这个非常直接的正则表达式代码usingSystem;usingSystem.Collections.Generic;usingSystem.Linq;usingSystem.Text;usingSystem.Text.RegularExpressions;usingSystem.Threading.Tasks;namespaceRegexTest1{classProgram{staticvoidMain(string[]args){stringa="\"foobar123==\"";Regexr=newRegex("^\"(.*)\"$");Matchm=r.Match(a);i

C# 如何在按住鼠标按钮时循环

你能给我指出正确的方向吗?我试图在按下表单按钮时触发一个循环。//pseudocodeWhile(button1ispressed)value1+=1然后当然会在释放按钮时停止循环 最佳答案 为避免使用线程,您可以添加Timer在您的表单/控件上添加组件,只需在鼠标按下时启用它并在鼠标抬起时禁用它。然后将通常放在循环中的代码放入Timer_Tick事件中。如果您想使用System.Timers.Timer,您可以改用Timer.Elapsed事件。示例(使用System.Timers.Timer):usingTimer=System

c# - 为什么将 List<T> 转换为 IList<T> 会导致性能下降?

我在做一些性能指标时遇到了一些对我来说很奇怪的事情。我为以下两个函数计时:privatestaticvoidDoOne(){ListA=newList();for(inti=0;iA=newList();for(inti=0;iL=A;ints=0;for(intj=0;j即使在Release模式下编译,计时结果始终显示DoTwo比DoOne花费大约100倍的时间:DoOnetook0.06171706seconds.DoTwotook8.841709seconds.鉴于List直接实现IList这一事实,我对结果感到非常惊讶。谁能澄清这种行为?血淋淋的细节回答问题,这里是完整的代码和

c# - 背靠背 for 循环中的 int、short、byte 性能

(背景:WhyshouldIuseintinsteadofabyteorshortinC#)为了满足我自己对使用“适当大小”整数与“优化”整数的优缺点的好奇心,我编写了以下代码,这些代码强化了我之前对.Net中的int性能的看法(并对此进行了解释在上面的链接中)这是针对int性能而不是short或byte进行了优化。DateTimet;longa,b,c;t=DateTime.Now;for(intindex=0;index这在......方面给出了大致一致的结果~950000~2000000~1700000这符合我的预期。然而,当我尝试像这样为每种数据类型重复循环时......t=D

c# - 如何终止嵌套循环中的外循环?

终止下面示例中所有嵌套循环的最佳方法是什么。一旦if语句为真,我想终止外部for语句(与I)。换句话说,我需要整个循环停止。有比将I设置为10更好的方法吗?for(intI=0;I 最佳答案 我会将其重构为一个方法,并在需要时调用return。您也可以使用goto,我为此使用了goto,但它不受欢迎。这是愚蠢的;这种情况是它存在于语言中的原因。voidDoSomeStuff(){for(intI=0;I 关于c#-如何终止嵌套循环中的外循环?,我们在StackOverflow上找到一个类